import { getUserInfo } from '../../utils/getUserInfo'
import { getToken } from '../../utils/getToken'
import { setUserInfo } from '../../utils/setUserInfo'

Page({
  data: {
    userInfo: null
  },

  onShow() {
    this.setData({
      userInfo: getUserInfo()
    })
  },
  //昵称输入框失去焦点事件处理函数
  handleNickNameBlur(e) {
    console.log('blur')
    console.log(e)
    // 更新服务器上的用户信息
    wx.request({
      url: 'https://live-api.itheima.net/userInfo',
      method: 'PUT',
      header: {
        Authorization: 'Bearer ' + getToken()
      },
      data: {
        nickName: e.detail.value.trim()
      },
      success: (res) => {
        console.log('更新昵称res', res)
        // 更新本地数据，基于原对象，更新其中某一个数据
        // 复制原对象，更改对应的属性
        // 获取本地原来的用户信息
        const userInfo = getUserInfo()
        // 更新本地用户信息
        setUserInfo({ ...userInfo, nickName: e.detail.value.trim() })
      }
    })
  },

  // 头像上传
  handleChooseAvatar(e) {
    console.log(e)
    // 上传到公司服务器
    wx.uploadFile({
      filePath: e.detail.avatarUrl,
      name: 'file',
      url: 'https://live-api.itheima.net/upload',
      formData: {
        type: 'avatar'
      },
      header: {
        Authorization: 'Bearer ' + getToken()
      },
      success: (res) => {
        console.log('图片上传结果', res)
        // 更新本地用户信息
        const parsedData = JSON.parse(res.data)
        console.log('parsedData', parsedData)
        // 业务异常判断

        // 更新本地个人信息
        const userInfo = getUserInfo()
        setUserInfo({ ...userInfo, avatar: parsedData.data.url })

        // 设置页面数据
        this.setData({
          userInfo: getUserInfo()
        })
      }
    })
  }
});
